package com.yanqu.road.entity.enums.feast;

public class eFeastType {
    // 事件类型枚举
    public enum EventType {
        Npc(101),       // npc战斗事件
        Boss(102),      // boss战斗事件
        Select(200),    // 二选一事件
        Welfare(300),   // 福地事件
        KillMonster(401),          // 击杀怪物
        GetItem(402);              // 获得道具
        private int eventType;

        EventType(int t) {
            eventType = t;
        }

        public int getValue() {
            return eventType;
        }

        // 是否是战斗事件
        public static boolean isBattleEvent(int eventType) {
            if (eventType == Npc.getValue() || eventType == Boss.getValue()) {
                return true;
            }
            return false;
        }
        // 是否任务事件
        public static boolean isTaskEvent(int eventType) {
            if (eventType == KillMonster.getValue() || eventType == GetItem.getValue()) {
                return true;
            }
            return false;
        }
    }
    // 战斗属性枚举
    public enum BattleAttrType {
        Hp(1),              // 血量
        Atk(2),             // 攻击
        CritRatio(3),       // 暴击
        TenacityRatio(4),   // 坚韧
        AtkSpeed(5),        // 攻速
        DodgeRatio(6),      // 闪避
        HitRatio(7),        // 命中
        SuckRatio(8);       // 吸血

        private int value;

        BattleAttrType(int v) {
            value = v;
        }

        public int getValue() {
            return value;
        }
    }
    // 地图行为类型
    public enum MissionBehaviorType {
        KillMonster(401),          // 击杀怪物
        GetItem(402);              // 获得道具
        private int value;

        MissionBehaviorType(int v) {
            value = v;
        }

        public int getValue() {
            return value;
        }
    }
    // npc类型
    public enum MissionNpcType {
        Monster(1),              // 怪物
        Npc(2),                  // Npc
        Item(3);                 // 道具
        private int value;

        MissionNpcType(int v) {
            value = v;
        }

        public int getValue() {
            return value;
        }
    }

    // 法宝类型
    public enum EquipmentType {
        Weapon(1),                  // 武器
        HiddenWeapon(2),            // 暗器
        FuBao(3),                   // 符宝
        Shield(4),                  // 遁速
        Defense(5),                 // 防御
        Protect(6),                 // 护身
        Assist(7),                  // 辅助
        Control(8),                 // 控制
        Puppet(9),                  // 傀儡
        Fly(10),                    // 飞行
        Beast(11),                  // 灵兽
        Exclusive(12);              // 本命

        private int value;

        EquipmentType(int v) {
            value = v;
        }

        public int getValue() {
            return value;
        }
    }

    // 法宝升级配置-类型
    public enum EquipmentUpgradeType {
        baseAttr(101),                    // 等级基础属性
        AdvanceAttr(102),                 // 进阶属性
        AttrPower(103),                   // 属性价值
        ExclusiveSkillOneAttr(201),       // 本命法宝技能1属性
        EquipmentTripodExp(301),          // 虚空鼎装备回收经验

        AdvanceWeight(201),               // 进阶属性权重
        WeaponAttr(201),                  // 武器进阶属性
        HiddenWeaponAttr(202),            // 暗器进阶属性
        FuBaoAttr(203),                   // 符宝进阶属性
        ShieldAttr(204),                  // 遁速进阶属性
        DefenseAttr(205),                 // 防御进阶属性
        ProtectAttr(206),                 // 护身进阶属性
        AssistAttr(207),                  // 辅助进阶属性
        ControlAttr(208),                 // 控制进阶属性
        PuppetAttr(209),                  // 傀儡进阶属性
        FlyAttr(210),                     // 飞行进阶属性
        BeastAttr(211),                   // 灵兽进阶属性
        ExclusiveAttr(212);               // 本命法宝进阶属性

        private int value;

        EquipmentUpgradeType(int v) {
            value = v;
        }

        public int getValue() {
            return value;
        }
        // 通过技能类型获取升级配置类型
        public static int getBytSkillType(int skillType) {
            if (skillType == 1) {
                return ExclusiveSkillOneAttr.getValue();
            }
            return 0;
        }
        // 通过装备类型获取升级配置类型
        public static int getByEquipmentType(int equipmentType) {

            if (equipmentType == EquipmentType.Weapon.getValue()) {
                return WeaponAttr.getValue();
            } else if (equipmentType == EquipmentType.HiddenWeapon.getValue()) {
                return HiddenWeaponAttr.getValue();
            } else if (equipmentType == EquipmentType.FuBao.getValue()) {
                return FuBaoAttr.getValue();
            } else if (equipmentType == EquipmentType.Shield.getValue()) {
                return ShieldAttr.getValue();
            } else if (equipmentType == EquipmentType.Defense.getValue()) {
                return DefenseAttr.getValue();
            } else if (equipmentType == EquipmentType.Protect.getValue()) {
                return ProtectAttr.getValue();
            } else if (equipmentType == EquipmentType.Assist.getValue()) {
                return AssistAttr.getValue();
            } else if (equipmentType == EquipmentType.Control.getValue()) {
                return ControlAttr.getValue();
            } else if (equipmentType == EquipmentType.Puppet.getValue()) {
                return PuppetAttr.getValue();
            } else if (equipmentType == EquipmentType.Fly.getValue()) {
                return FlyAttr.getValue();
            } else if (equipmentType == EquipmentType.Beast.getValue()) {
                return BeastAttr.getValue();
            } else if (equipmentType == EquipmentType.Exclusive.getValue()) {
                return ExclusiveAttr.getValue();
            }
            return 0;
        }
    }

    // 格子完成状态
    public enum GridStatus {
        Default(0),              // 默认值
        NoFinish(1),             // 未完成
        Finish(2);               // 已完成

        private int value;

        GridStatus(int v) {
            value = v;
        }

        public int getValue() {
            return value;
        }
    }

    // 灵峰房间成员操作
    public enum RoomOpType {
        UseEnergy(1),            // 使用体力
        StateBreak(2),           // 渡劫
        RareEquipment(3);        // 抽到稀有法宝

        private int value;

        RoomOpType(int v) {
            value = v;
        }

        public int getValue() {
            return value;
        }
    }
}
